图论;单源最短路径;拓扑排序+松弛(有向无回路);Bellman-Ford(回路,负权回路);Dijkstra(无负权,可回路);可以用最小堆实现算法的优化;

 

首先了解松弛技术,即给每个顶点设置到源点的最短距离,设置前驱.  在有限次的对边的松弛之后,可以将所有顶点的前驱与单源最短距离确定.

 

拓扑排序: 图的深度优先遍历的应用,对一个图进行深度优先的最后将该顶点头插到线性表中,那么线性表中只有自左至右的边,有边的两个的顶点的运行顺序一定是从左至右的,没有边相连的则无所谓.  这就给出了一个线性排序,它能够确定事情发展的先后次序.  从图上来看,就是一个单源的流程图,上部的事情肯定要比下部的事情先做,然后有些事情之间没有必要注意先后顺序 .  拓扑排序就是完成了一个事情发现先后顺序的排序,拓扑排序后对于松弛技术又有了进一步优化,只需要对拓扑序列做一趟松弛就完成了所有结点的单源最短路径问题,但是拓扑排序的适应范围仅限于有向的,没有回路的类似流程图的图,权可以为负,但不可以有回路。

 

Bellman-Ford算法是一种通用的单源最短路径做法 。  通过对所有的边松弛num-1次,就把除源点外的num-1个顶点的最短单源路径确定下来。 允许有回路,负权,负权回路(会自动判别,如果存在,则算法失败).

 

迪克拉斯算法就是对S集合与V-S集合之间操作,对每次选入S的顶点与V-S的顶点之间做松弛,n-1次后完成。

 

松弛算法对源点的minDist初始化为0,这也是为什么对边松弛有限次后有结果的原因.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值